<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  
  <title>花椒茴香的博客</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <meta property="og:type" content="website">
<meta property="og:title" content="花椒茴香的博客">
<meta property="og:url" content="http://huajiaohuixiang.gitee.io/index.html">
<meta property="og:site_name" content="花椒茴香的博客">
<meta property="og:locale" content="en_US">
<meta property="article:author" content="John Doe">
<meta name="twitter:card" content="summary">
  
    <link rel="alternate" href="/atom.xml" title="花椒茴香的博客" type="application/atom+xml">
  
  
    <link rel="shortcut icon" href="/favicon.png">
  
  
    
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/typeface-source-code-pro@0.0.71/index.min.css">

  
  
<link rel="stylesheet" href="/css/style.css">

  
    
<link rel="stylesheet" href="/fancybox/jquery.fancybox.min.css">

  
<meta name="generator" content="Hexo 5.4.0"></head>

<body>
  <div id="container">
    <div id="wrap">
      <header id="header">
  <div id="banner"></div>
  <div id="header-outer" class="outer">
    <div id="header-title" class="inner">
      <h1 id="logo-wrap">
        <a href="/" id="logo">花椒茴香的博客</a>
      </h1>
      
    </div>
    <div id="header-inner" class="inner">
      <nav id="main-nav">
        <a id="main-nav-toggle" class="nav-icon"></a>
        
          <a class="main-nav-link" href="/">Home</a>
        
          <a class="main-nav-link" href="/archives">Archives</a>
        
      </nav>
      <nav id="sub-nav">
        
          <a id="nav-rss-link" class="nav-icon" href="/atom.xml" title="RSS Feed"></a>
        
        <a id="nav-search-btn" class="nav-icon" title="Search"></a>
      </nav>
      <div id="search-form-wrap">
        <form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit">&#xF002;</button><input type="hidden" name="sitesearch" value="http://huajiaohuixiang.gitee.io"></form>
      </div>
    </div>
  </div>
</header>

      <div class="outer">
        <section id="main">
  
    <article id="post-张美丽" class="h-entry article article-type-post" itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="article-meta">
    <a href="/2021/12/08/%E5%BC%A0%E7%BE%8E%E4%B8%BD/" class="article-date">
  <time class="dt-published" datetime="2021-12-08T13:09:49.000Z" itemprop="datePublished">2021-12-08</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="p-name article-title" href="/2021/12/08/%E5%BC%A0%E7%BE%8E%E4%B8%BD/">张美丽</a>
    </h1>
  

      </header>
    
    <div class="e-content article-entry" itemprop="articleBody">
      
        <p>本该是一个炎炎午后，却在一台老旧的摇头风扇下赊来一盏清欢。窗外热风撩过沙沙枝叶，夏蝉聒噪一片。约隐锈迹的铁床缭绕着烟丝，张菁递给我半支烟，把游戏机接了过去，蜷缩在靠墙的一边玩。</p>
<p>张菁二十一岁那年把自己和行李一同打包，坐着普快列车挥别了大上海。她一如既往的神情自若，只是颈间带了几年的一个坠子不见了。</p>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://huajiaohuixiang.gitee.io/2021/12/08/%E5%BC%A0%E7%BE%8E%E4%B8%BD/" data-id="ckwxmj9om0000v0v1c5t0729o" data-title="张美丽" class="article-share-link">Share</a>
      
      
      
  <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>

    </footer>
  </div>
  
</article>



  
    <article id="post-青青" class="h-entry article article-type-post" itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="article-meta">
    <a href="/2021/12/08/%E9%9D%92%E9%9D%92/" class="article-date">
  <time class="dt-published" datetime="2021-12-08T11:01:59.000Z" itemprop="datePublished">2021-12-08</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="p-name article-title" href="/2021/12/08/%E9%9D%92%E9%9D%92/">青青</a>
    </h1>
  

      </header>
    
    <div class="e-content article-entry" itemprop="articleBody">
      
        <p>转过山路，村子静静躺在和熙的日光中，远远看去，蜿蜒小溪穿村而过，一座石桥横跨水上。那男生在颠簸中醒来，朦胧的问我些什么，我都答了。油腻的车窗外是耀眼的白，将层层林木铺满午后的味道。他深色外套的纹路都被映了出来，细密而粗糙。在村口的梧桐树下了车，举目望去，是有些年头了，枝木繁繁攀上了天，挂满了紫色的花，落下阵阵清香。路的两旁载满了油菜花，约莫齐膝高，更显得路长而窄。好在走得不远，便入了村。一如远远所见，村子静得极了，没有鸡鸣狗吠，也不见人言细碎。似乎风都不在，可以听得阳光流淌下来的声音。<br>屋与屋之间的挨得很近，砖瓦层层叠在一起，缓缓挑起小的飞拱。男生细瘦的背影在狭长的过道中，外套的颜色又暗了些。路过一处空地，见到一群老人拍集体照似的坐成高低三排，其乐融融的笑着。阳光从他们深壑的皱纹里漏出来，把黝黑的脸抹得精亮。</p>
<p>老板用袖珍可爱的小碟，各装一份虾子和毛豆，锅仔也是18块钱的那种小锅。那5块钱的雪花骄傲的杵在桌子上，霸气的虎视脚下铁盘里两只干瘪的鸡爪。</p>
<p>送她回去的路上，烧烤的灰烟依旧占据了整条街，随着忽明忽暗的火星，绕上了天。过高银街不久，桂花的甜味洒下来，让人心情愉悦。、</p>
<p>经再三商议，青青索要三个苹果作为奖励。我本想去超市随便拿几个，可青青执意要去菜市场。沿路铺满了彩色的花砖，青青背着手，一颠一颠踩在盲道上，发际在腰间跟着一跳一跳。她的手白皙葱嫩，懒洋洋的勾在一起，如果牵起来，应该软绵绵的。 “喂。” 青青停下来，“干嘛？” “过来过来。” 青青就跟个宠物狗似的，撒欢跑来。我拢起胳膊，“你是离异妇女啊？跑那么远干嘛。” 青青一脸委屈，鼓起嘴，挽住了。</p>
<p>我的笑容一霎那就僵了，心里像有千丝万缕却又无法顺平，短短几秒脑内浮现无数疑问，想要问时，看到青青哭的凄楚的脸，这样的话又无论如何也说不出。橙黄的屋内是温馨的气味，角落游戏区偶尔伴出小孩子的尖叫，零散的几对情侣脸上都挂着一个模子里刻出的微笑。我盯着青青的侧脸，这个成为我女朋友好几个月，并将在之后几个月成为我的妻子的女人，一切都与这个情景万分吻合，丝毫没有风尘气息。</p>
<p>天边的云被阳光晒透了边，空空的散成大片，折射下来的碎亮落在 青青脸上，遮住她眯起北眺的眼。这一幕仿佛经年久月的出现在青青身上，似乎已有很多年，她都是这么一个人坐在顶楼，漫无目的的遥望北方。只不过那时她身边没有人，只身孤影的沉浸在晨曦或者晚霞里，喃喃的说些什么，一会儿哭了，一会儿又笑了。</p>
<p>正月的天晚得早，西边的淡夜漫漫染来，满天的卷云不知何时披上了星月。</p>
<p>楼道口那里，只有倒灌的冷风吹着哨，而此时天也完全黑了。那个我臆想中的人始终没有出现。我依然无法移动半步，任风割我面，怔怔如痴。原来，世上那个爱我爱的要死的女人，根本没有出现过。</p>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://huajiaohuixiang.gitee.io/2021/12/08/%E9%9D%92%E9%9D%92/" data-id="ckwxmj9p00001v0v1af927m8v" data-title="青青" class="article-share-link">Share</a>
      
      
      
  <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>

    </footer>
  </div>
  
</article>



  
    <article id="post-小张和小丽" class="h-entry article article-type-post" itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="article-meta">
    <a href="/2021/12/08/%E5%B0%8F%E5%BC%A0%E5%92%8C%E5%B0%8F%E4%B8%BD/" class="article-date">
  <time class="dt-published" datetime="2021-12-08T05:20:14.000Z" itemprop="datePublished">2021-12-08</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="p-name article-title" href="/2021/12/08/%E5%B0%8F%E5%BC%A0%E5%92%8C%E5%B0%8F%E4%B8%BD/">小张和小丽</a>
    </h1>
  

      </header>
    
    <div class="e-content article-entry" itemprop="articleBody">
      
        <p>我摸她，像冷藏的脂肪。</p>
<p>小丽乌黑的毛发，以及她背后幽黄的灯光，像一出京戏，在我的人生中拉开了短暂的帷幕。 </p>
<p>我觉得自己像小溪汇入了大海，枯木扎进了森林。一股委屈顶风冒雪的冲了出来，我差点没憋住，鼻子酸的要死。 </p>
<p>我俩并排躺床上聊天，窗外的云压到了梧桐枝头，风也骤了。</p>
<p>车子行驶在盘山路上，睁着惺忪的双眼看到那些葱茏的山和绿油油的田，心情又转而高涨起来。<br>挑了靠江的吊脚楼客栈，窗外正好对着万名塔和那一带轻舟荡漾。<br>夜里小张的呼吸与江面轻轻波涛重叠在一起，刻住了那时的梦。<br>远处有苗女迎客的山歌，飘飘渺渺落在水云之间。<br>你看这暮色蔼蔼西风紧。<br>路过酒吧，我们便去落座。<br>有人抱着吉他唱罗大佑的恋曲八零，听得心里一阵潮湿。<br>春风秋雨多少海誓山盟都随风远去。 </p>
<p>她一定是那种嫌弃的表情，夸张做作的，几秒钟后又一头扎进我怀里来，嬉皮笑脸的说对不起，若我坚持臭脸，她就会对我动手动脚。 </p>
<p>窗外是昏暗藏蓝的傍晚，残月尚未当空，夕阳却已垂落。 </p>
<p>期望与绝望，往往贯穿着那些心比天高命比纸薄的人生。 </p>
<p>房里没有开灯，淡淡月色斜过窗，洒在小丽光滑起落的身上。继而被毛巾挤下的水冲散，哗哗掉在地上，碎成无数凉风。 </p>
<p>她很好听的普通话被风卷进树枝里，渐渐飘得散了。小丽依然素面朝天，身后是大片枯黄的叶，映得她颈间的皮肤格外雪白，丝丝青脉，烙进日光里。 </p>
<p>外面起了风，带的门框哗哗做响。稀薄的阳光被刮散，卷进细细碎碎的尘土中，兜过玻璃窗，粒粒轻响。 </p>
<p>我不接话，环顾房间。耳畔似乎又可以听到夏日淋淋的大雨，不绝的从梧桐树上灌进院子里。小风扇也放起来了，它的嗡嗡声被秋天送走了。<br>最重要的是，这个快乐的热天，好像过去了。 </p>
<p>雨水有些打湿了她好看的梨花头，呢子外套上粒粒晶莹的水珠。</p>
<p>我俩说话的声音被呼啸而过的车辆卷走不少，路面是雪水与泥巴被压过的嘈杂，四下都是小水洼，不时被迅速溅起飞花。 </p>
<p>出来的路上已是夜火辉煌，天桥下是来往不息的灯河。潮冬的湿气浸透了衣服，棉絮变得矫揉，隔不住风，留不住体温。</p>
<p>扑面的凉风闯进胃里，寒了整片胸腔。路两旁的四季青也暗淡了许多，上面盖着泥泞的灰霜。 </p>
<p>小丽的名字始终像盘根错节的植物，扎进我的心里。可随着时间的推移，我只能隐约拼凑起小丽的音容笑貌，可是很多次在梦中，我都再也看不清楚她的脸。</p>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://huajiaohuixiang.gitee.io/2021/12/08/%E5%B0%8F%E5%BC%A0%E5%92%8C%E5%B0%8F%E4%B8%BD/" data-id="ckwxa9ycd00009cv1027ifv3r" data-title="小张和小丽" class="article-share-link">Share</a>
      
      
      
  <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>

    </footer>
  </div>
  
</article>



  
    <article id="post-呐喊" class="h-entry article article-type-post" itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="article-meta">
    <a href="/2021/11/24/%E5%91%90%E5%96%8A/" class="article-date">
  <time class="dt-published" datetime="2021-11-24T14:14:49.000Z" itemprop="datePublished">2021-11-24</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="p-name article-title" href="/2021/11/24/%E5%91%90%E5%96%8A/">呐喊</a>
    </h1>
  

      </header>
    
    <div class="e-content article-entry" itemprop="articleBody">
      
        <h4 id="自序"><a href="#自序" class="headerlink" title="自序"></a>自序</h4><p>我在年青时候也曾经做过许多梦，后来大半忘却了，但自己也并不以为可惜。所谓回忆者，虽说可以使人欢欣，有时也不免使人寂寞，使精神的丝缕还牵着已逝的寂寞的时光，又有什么意味呢，而我偏苦于不能全忘却，这不能全忘的一部分，到现在便成了《呐喊》的来由。</p>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://huajiaohuixiang.gitee.io/2021/11/24/%E5%91%90%E5%96%8A/" data-id="ckwdmgk9b0001s8v1atbo55pp" data-title="呐喊" class="article-share-link">Share</a>
      
      
      
  <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>

    </footer>
  </div>
  
</article>



  
    <article id="post-野草" class="h-entry article article-type-post" itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="article-meta">
    <a href="/2021/11/24/%E9%87%8E%E8%8D%89/" class="article-date">
  <time class="dt-published" datetime="2021-11-24T10:45:22.000Z" itemprop="datePublished">2021-11-24</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="p-name article-title" href="/2021/11/24/%E9%87%8E%E8%8D%89/">野草</a>
    </h1>
  

      </header>
    
    <div class="e-content article-entry" itemprop="articleBody">
      
        <h4 id="题记"><a href="#题记" class="headerlink" title="题记"></a>题记</h4><p>当我沉默着的时候，我觉得充实;我将开口，同时感到空虚。</p>
<p>过去的生命已经死亡。我对于这死亡有大欢喜，因为我借此知道它曾经存活。死亡的生命已经朽腐。我对于这朽腐有大欢喜，因为我借此知道它还非空虚。</p>
<p>生命的泥委弃在地面上，不生乔木，只生野草，这是我的罪过。</p>
<p>野草，根本不深，花叶不美，然而吸取露，吸取水，吸取陈死人的血和肉，各各夺取它的生存。当生存时，还是将遭践踏，将遭删刈，直至于死亡而朽腐。</p>
<p>但我坦然，欣然。我将大笑，我将歌唱。</p>
<p>我自爱我的野草，但我憎恶这以野草作装饰的地面。</p>
<p>地火在地下运行，奔突;熔岩一旦喷出，将烧尽一切野草，以及乔木，于是并且无可朽腐。</p>
<p>但我坦然，欣然。我将大笑，我将歌唱。</p>
<p>天地有如此静穆，我不能大笑而且歌唱。天地即不如此静穆，我或者也将不能。我以这一丛野草，在明与暗，生与死，过去与未来之际，献于友与仇，人与兽，爱者与不爱者之前作证。</p>
<p>为我自己，为友与仇，人与兽，爱者与不爱者，我希望这野草的死亡与朽腐，火速到来。要不然，我先就未曾生存，这实在比死亡与朽腐更其不幸。</p>
<p>去罢，野草，连着我的题辞!</p>
<h4 id="秋夜"><a href="#秋夜" class="headerlink" title="秋夜"></a>秋夜</h4><p>枣树，他们简直落尽了叶子。先前，还有一两个孩子来打他们别人打剩的枣子，现在是一个也不剩了，连叶子也落尽了。他知道小粉红花的梦，秋后要有春；他也知道落叶的梦，春后还是秋。他简直落尽叶子，单剩干子，然而脱了当初满树是果实和叶子时候的弧形，欠伸得很舒服。但是，有几枝还低亚着，护定他从打枣的竿梢所得的皮伤，而最直最长的几枝，却已默默地铁似的直刺着奇怪而高的天空，使天空闪闪地鬼〖目夹〗眼；直刺着天空中圆满的月亮，使月亮窘得发白。</p>
<h4 id="一觉"><a href="#一觉" class="headerlink" title="一觉"></a>一觉</h4><p>魂灵被风沙打击得粗暴，因为这是人的魂灵，我爱这样的魂灵;我愿意在无形无色的鲜血淋漓的粗暴上接吻。漂渺的名园中，奇花盛开着，红颜的静女正在超然无事地逍遥，鹤唳一声，白云郁然而起……。这自然使人神往的罢，然而我总记得我活在人间。</p>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://huajiaohuixiang.gitee.io/2021/11/24/%E9%87%8E%E8%8D%89/" data-id="ckwdmgk9f0003s8v1bhr190f5" data-title="野草" class="article-share-link">Share</a>
      
      
      
  <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>

    </footer>
  </div>
  
</article>



  
    <article id="post-notes" class="h-entry article article-type-post" itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="article-meta">
    <a href="/2021/11/24/notes/" class="article-date">
  <time class="dt-published" datetime="2021-11-24T10:45:07.000Z" itemprop="datePublished">2021-11-24</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="p-name article-title" href="/2021/11/24/notes/">notes</a>
    </h1>
  

      </header>
    
    <div class="e-content article-entry" itemprop="articleBody">
      
        
      
    </div>
    <footer class="article-footer">
      <a data-url="http://huajiaohuixiang.gitee.io/2021/11/24/notes/" data-id="ckwdmgk940000s8v16dcyb4cb" data-title="notes" class="article-share-link">Share</a>
      
      
      
    </footer>
  </div>
  
</article>



  
    <article id="post-linux、windows命令" class="h-entry article article-type-post" itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="article-meta">
    <a href="/2021/10/25/linux%E3%80%81windows%E5%91%BD%E4%BB%A4/" class="article-date">
  <time class="dt-published" datetime="2021-10-25T07:19:20.000Z" itemprop="datePublished">2021-10-25</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="p-name article-title" href="/2021/10/25/linux%E3%80%81windows%E5%91%BD%E4%BB%A4/">linux、windows命令</a>
    </h1>
  

      </header>
    
    <div class="e-content article-entry" itemprop="articleBody">
      
        <h6 id="1-Putty-传送文件到服务器："><a href="#1-Putty-传送文件到服务器：" class="headerlink" title="1.Putty 传送文件到服务器："></a>1.Putty 传送文件到服务器：</h6><p> 打开putty目录：命令行运行 psftp<br>​ put -r foldername 上传文件夹</p>
<h6 id="2-Linux获取应用程序位置"><a href="#2-Linux获取应用程序位置" class="headerlink" title="2.Linux获取应用程序位置"></a>2.Linux获取应用程序位置</h6><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">dpkg -S softwarename 显示包含此软件包的所有位置，</span><br><span class="line">dpkg -L softwarename 显示安装路径。</span><br></pre></td></tr></table></figure>

<h6 id="3-开启关闭HypeV"><a href="#3-开启关闭HypeV" class="headerlink" title="3.开启关闭HypeV"></a>3.开启关闭HypeV</h6><p>管理员打开命令行</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">bcdedit /set hypervisorlaunchtype off </span><br><span class="line"></span><br><span class="line">   bcdedit /set hypervisorlaunchtype Auto</span><br></pre></td></tr></table></figure>

<h6 id="4-Linux-命令"><a href="#4-Linux-命令" class="headerlink" title="4.Linux 命令"></a>4.Linux 命令</h6><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">netstat -ntlp  查看端口使用情况</span><br><span class="line"></span><br><span class="line">ps ux 查看nohup进程</span><br><span class="line"></span><br><span class="line">jobs  未退出过终端 查看nohup进程</span><br><span class="line"></span><br><span class="line">kill -9 id</span><br></pre></td></tr></table></figure>

<h6 id="5-查找当前文件夹下所有以-go的文件数目"><a href="#5-查找当前文件夹下所有以-go的文件数目" class="headerlink" title="5.查找当前文件夹下所有以.go的文件数目"></a>5.查找当前文件夹下所有以.go的文件数目</h6><p>find ./ -name “*.go” | wc -l</p>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://huajiaohuixiang.gitee.io/2021/10/25/linux%E3%80%81windows%E5%91%BD%E4%BB%A4/" data-id="ckvf4x3n00004okv141ly2s66" data-title="linux、windows命令" class="article-share-link">Share</a>
      
      
      
  <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/linux/" rel="tag">linux</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/windows/" rel="tag">windows</a></li></ul>

    </footer>
  </div>
  
</article>



  
    <article id="post-悲惨世界" class="h-entry article article-type-post" itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="article-meta">
    <a href="/2021/10/25/%E6%82%B2%E6%83%A8%E4%B8%96%E7%95%8C/" class="article-date">
  <time class="dt-published" datetime="2021-10-25T07:18:39.000Z" itemprop="datePublished">2021-10-25</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="p-name article-title" href="/2021/10/25/%E6%82%B2%E6%83%A8%E4%B8%96%E7%95%8C/">悲惨世界</a>
    </h1>
  

      </header>
    
    <div class="e-content article-entry" itemprop="articleBody">
      
        <p>人有肉体，这对人来说，既是负担优势诱惑。人拖着肉体，又屈从于肉体。</p>
<p>有罪的人并不是犯罪的人，而是制造黑暗的人。</p>
<p>最好看的祭坛，是不幸者因得到了安慰而感谢上帝的一颗心灵</p>
<p>我在这世上不是守护自己的生命，而是守护灵魂。</p>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://huajiaohuixiang.gitee.io/2021/10/25/%E6%82%B2%E6%83%A8%E4%B8%96%E7%95%8C/" data-id="ckvf4x3n30008okv1g12x6r2r" data-title="悲惨世界" class="article-share-link">Share</a>
      
      
      
  <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>

    </footer>
  </div>
  
</article>



  
    <article id="post-hexo博客搭建" class="h-entry article article-type-post" itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="article-meta">
    <a href="/2021/10/25/hexo%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/" class="article-date">
  <time class="dt-published" datetime="2021-10-25T07:17:25.000Z" itemprop="datePublished">2021-10-25</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="p-name article-title" href="/2021/10/25/hexo%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/">hexo博客搭建</a>
    </h1>
  

      </header>
    
    <div class="e-content article-entry" itemprop="articleBody">
      
        <p>使用Hexo+Github部署<br>参考官方文档：<a target="_blank" rel="noopener" href="https://hexo.io/docs/">https://hexo.io/docs/</a></p>
<h4 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">cnpm install -g hexo-cli  或者 cnpm install  hexo  安装Hexo</span><br><span class="line">hexo init &lt;foldername&gt;    新建一个Hexo项目</span><br><span class="line">cd foldername             </span><br><span class="line">cnpm install              安装依赖</span><br></pre></td></tr></table></figure>

<h4 id="写博客"><a href="#写博客" class="headerlink" title="写博客"></a>写博客</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">hexo new [layout] &lt;title&gt; 新建一个帖子/页面/草稿   分别对应layout中post/page/draft  title是名字  对于草稿写完后还需要 hexo publish [layout] &lt;title&gt;</span><br><span class="line">//创建post时可以根据scaffolds中的模板进行创建 命令为 hexo new &lt;模板名字&gt; &lt;post名字&gt; 例如scaffolds中有一个a.md  以它为模板的命令为 hexo new a “hi”</span><br></pre></td></tr></table></figure>

<h4 id="部署在github上"><a href="#部署在github上" class="headerlink" title="部署在github上"></a>部署在github上</h4><p>首先在github上创建huajiaohuixiang.github.io的Repo<br>然后在本地hexo下</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">git init</span><br><span class="line">git branch -M main</span><br><span class="line">git remote add origin https://github.com/huajiaohuixiang/huajiaohuixiang.github.io.git</span><br><span class="line">git add .</span><br><span class="line">git commit -m &quot;first commit&quot;</span><br><span class="line">git push origin -u origin main  第一次需要-u origin commit</span><br></pre></td></tr></table></figure>

<p>然后安装hexo-deployer</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">cnpm install hexo-deployer-git --save</span><br><span class="line">修改 _config.yml  将deploy修改成下面（huajiaohuixiang应该改成你的repo名字）</span><br><span class="line">deploy:</span><br><span class="line">  type: git</span><br><span class="line">  repo: https://github.com/huajiaohuixiang/huajiaohuixiang.github.io</span><br><span class="line">  branch: main</span><br></pre></td></tr></table></figure>

<p>然后</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">hexo clean </span><br><span class="line">hexo deploy</span><br></pre></td></tr></table></figure>

<p>打开<a target="_blank" rel="noopener" href="https://huajioahuixiang.github.io即可/">https://huajioahuixiang.github.io即可</a><br>本人第一次hexo deploy的时候报错</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">FATAL &#123;</span><br><span class="line">  err: Error: Spawn failed</span><br><span class="line">      at ChildProcess.&lt;anonymous&gt; (Y:\个人博客\hexo\node_modules\_hexo-util@2.4.0@hexo-util\lib\spawn.js:51:21)</span><br><span class="line">      at ChildProcess.emit (events.js:315:20)</span><br><span class="line">      at ChildProcess.cp.emit (Y:\个人博客\hexo\node_modules\_cross-spawn@7.0.3@cross-spawn\lib\enoent.js:34:29)</span><br><span class="line">      at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12) &#123;</span><br><span class="line">  &#125;</span><br></pre></td></tr></table></figure>

<p>在deploy一次就好了</p>
<p>可能有用的文章：<br><a target="_blank" rel="noopener" href="https://1187100546.github.io/2019/11/24/spawn-failed/">https://1187100546.github.io/2019/11/24/spawn-failed/</a><br><a target="_blank" rel="noopener" href="https://perry96.com/archives/882898e3.html">https://perry96.com/archives/882898e3.html</a> 这个是回退本地git版本 回退了就好了，很奇怪</p>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://huajiaohuixiang.gitee.io/2021/10/25/hexo%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/" data-id="ckvf4x3mz0003okv1a4l1a6qw" data-title="hexo博客搭建" class="article-share-link">Share</a>
      
      
      
  <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/hexo/" rel="tag">hexo</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/" rel="tag">博客搭建</a></li></ul>

    </footer>
  </div>
  
</article>



  
    <article id="post-kinect获取三维坐标" class="h-entry article article-type-post" itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="article-meta">
    <a href="/2021/10/25/kinect%E8%8E%B7%E5%8F%96%E4%B8%89%E7%BB%B4%E5%9D%90%E6%A0%87/" class="article-date">
  <time class="dt-published" datetime="2021-10-25T07:16:17.000Z" itemprop="datePublished">2021-10-25</time>
</a>
    
  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="p-name article-title" href="/2021/10/25/kinect%E8%8E%B7%E5%8F%96%E4%B8%89%E7%BB%B4%E5%9D%90%E6%A0%87/">kinect获取三维坐标</a>
    </h1>
  

      </header>
    
    <div class="e-content article-entry" itemprop="articleBody">
      
        <h2 id="Kinect获取-骨骼图骨骼三维坐标"><a href="#Kinect获取-骨骼图骨骼三维坐标" class="headerlink" title="Kinect获取 骨骼图骨骼三维坐标"></a>Kinect获取 骨骼图骨骼三维坐标</h2><p>该项目需要我们利用KinectV2 获取骨骼图并得到头部坐标，每一秒取一帧，一共五分钟，将坐标输出。</p>
<p>KinectV2 可以获得色彩图、深度图、骨骼图等等，其实一开始我也不知道该从哪里下手，但对骨骼图的代码进行了一下分析找到了突破点。</p>
<h4 id="对KinectV2大体了解："><a href="#对KinectV2大体了解：" class="headerlink" title="对KinectV2大体了解："></a>对KinectV2大体了解：</h4><p>Kinect一共有三个坐标空间，分别是相机空间、深度空间、色彩空间，相机空间对应骨骼图等，深度空间对应深度图，色彩空间对应色彩图，并且KInectSDK中有CoordinateMapper类来实现深度空间到相机空间和深度空间到色彩空间的转换。<br>具体查看官方文档：<a target="_blank" rel="noopener" href="https://docs.microsoft.com/en-us/previous-versions/windows/kinect/dn785530(v=ieb.10)">https://docs.microsoft.com/en-us/previous-versions/windows/kinect/dn785530(v=ieb.10)</a></p>
<p>重点需要关心获取的帧的数据如何存储的，对于骨骼图，SDK中有两个重要的类分别是IBody 和 Joint 分别代表人和骨骼点。</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">IBody : public IUnknown</span><br><span class="line">  &#123;</span><br><span class="line">  public:</span><br><span class="line">      virtual HRESULT STDMETHODCALLTYPE GetJoints( </span><br><span class="line">          /* [annotation] */ </span><br><span class="line">          _Pre_equal_to_(JointType_Count)  UINT capacity,</span><br><span class="line">          /* [annotation][size_is][out] */ </span><br><span class="line">          _Out_writes_all_(capacity)  Joint *joints) = 0;</span><br><span class="line">      </span><br><span class="line">    ...</span><br><span class="line">      virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsTracked( </span><br><span class="line">          /* [annotation][out][retval] */ </span><br><span class="line">          _Out_  BOOLEAN *tracked) = 0;</span><br><span class="line">    ...</span><br><span class="line">   </span><br><span class="line">     </span><br><span class="line">  &#125;;</span><br></pre></td></tr></table></figure>

<p>分别利用GetJoints函数和get_IsTracked函数可以获得Joints和判断是否被记录到了。</p>
<p>对于Joints</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">#ifndef _Joint_</span><br><span class="line">#define _Joint_</span><br><span class="line">typedef struct _Joint</span><br><span class="line">    &#123;</span><br><span class="line">    JointType JointType;</span><br><span class="line">    CameraSpacePoint Position;</span><br><span class="line">    TrackingState TrackingState;</span><br><span class="line">    &#125; 	Joint;</span><br><span class="line"></span><br><span class="line">#endif // _Joint_</span><br></pre></td></tr></table></figure>

<p>一个struct 里面有Joint类型、相机空间位置、追踪状态（是否被观测到），接着往里看CameSpacePoint</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">#ifndef _CameraSpacePoint_</span><br><span class="line">#define _CameraSpacePoint_</span><br><span class="line">typedef struct _CameraSpacePoint</span><br><span class="line">    &#123;</span><br><span class="line">    float X;</span><br><span class="line">    float Y;</span><br><span class="line">    float Z;</span><br><span class="line">    &#125; 	CameraSpacePoint;</span><br><span class="line"></span><br><span class="line">#endif // _CameraSpacePoint_</span><br></pre></td></tr></table></figure>

<p>到这里就很清楚了，直接就可以得到相机空间地址了。（本来我以为需要先获得深度图地址，然后自己进行坐标计算的。。。）</p>
<p>然后SDK还定义了一下常量和其他类，在这里贴一下以防看代码的时候不懂</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br></pre></td><td class="code"><pre><span class="line">enum _JointType</span><br><span class="line">    &#123;</span><br><span class="line">        JointType_SpineBase	= 0,</span><br><span class="line">        JointType_SpineMid	= 1,</span><br><span class="line">        JointType_Neck	= 2,</span><br><span class="line">        JointType_Head	= 3,</span><br><span class="line">        JointType_ShoulderLeft	= 4,</span><br><span class="line">        JointType_ElbowLeft	= 5,</span><br><span class="line">        JointType_WristLeft	= 6,</span><br><span class="line">        JointType_HandLeft	= 7,</span><br><span class="line">        JointType_ShoulderRight	= 8,</span><br><span class="line">        JointType_ElbowRight	= 9,</span><br><span class="line">        JointType_WristRight	= 10,</span><br><span class="line">        JointType_HandRight	= 11,</span><br><span class="line">        JointType_HipLeft	= 12,</span><br><span class="line">        JointType_KneeLeft	= 13,</span><br><span class="line">        JointType_AnkleLeft	= 14,</span><br><span class="line">        JointType_FootLeft	= 15,</span><br><span class="line">        JointType_HipRight	= 16,</span><br><span class="line">        JointType_KneeRight	= 17,</span><br><span class="line">        JointType_AnkleRight	= 18,</span><br><span class="line">        JointType_FootRight	= 19,</span><br><span class="line">        JointType_SpineShoulder	= 20,</span><br><span class="line">        JointType_HandTipLeft	= 21,</span><br><span class="line">        JointType_ThumbLeft	= 22,</span><br><span class="line">        JointType_HandTipRight	= 23,</span><br><span class="line">        JointType_ThumbRight	= 24,</span><br><span class="line">        JointType_Count	= ( JointType_ThumbRight + 1 ) </span><br><span class="line">    &#125; ;</span><br><span class="line">#endif // _JointType_</span><br><span class="line"></span><br><span class="line">#ifndef _TrackingState_</span><br><span class="line">#define _TrackingState_</span><br><span class="line">typedef enum _TrackingState TrackingState;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">enum _TrackingState</span><br><span class="line">    &#123;</span><br><span class="line">        TrackingState_NotTracked	= 0,</span><br><span class="line">        TrackingState_Inferred	= 1,</span><br><span class="line">        TrackingState_Tracked	= 2</span><br><span class="line">    &#125; ;</span><br><span class="line">#endif // _TrackingState_</span><br><span class="line"></span><br><span class="line"> IBodyFrame : public IUnknown</span><br><span class="line">    &#123;</span><br><span class="line">    public:</span><br><span class="line">        virtual HRESULT STDMETHODCALLTYPE GetAndRefreshBodyData( </span><br><span class="line">            UINT capacity,</span><br><span class="line">            /* [annotation][size_is][out][in] */ </span><br><span class="line">            _Inout_updates_all_(capacity)  IBody **bodies) = 0;</span><br><span class="line">        </span><br><span class="line">        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FloorClipPlane( </span><br><span class="line">            /* [annotation][out][retval] */ </span><br><span class="line">            _Out_  Vector4 *floorClipPlane) = 0;</span><br><span class="line">        </span><br><span class="line">        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RelativeTime( </span><br><span class="line">            /* [annotation][out][retval] */ </span><br><span class="line">            _Out_  TIMESPAN *relativeTime) = 0;</span><br><span class="line">        </span><br><span class="line">        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BodyFrameSource( </span><br><span class="line">            /* [annotation][out][retval] */ </span><br><span class="line">            _COM_Outptr_  IBodyFrameSource **bodyFrameSource) = 0;</span><br><span class="line">        </span><br><span class="line">    &#125;;</span><br></pre></td></tr></table></figure>

<p>下面是项目代码的详细步骤：</p>
<p>第一步需要安装Kinect 的SDK，然后再Visual Studio进行项目配置，具体可以参考一下文章：</p>
<p><a target="_blank" rel="noopener" href="https://blog.csdn.net/lizhiguo18/article/details/51037672">https://blog.csdn.net/lizhiguo18/article/details/51037672</a></p>
<p><a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_43850620/article/details/103874847">https://blog.csdn.net/weixin_43850620/article/details/103874847</a></p>
<p>对项目配置好后就可以写代码啦。</p>
<p>1.这一步应该是获取Kinect，然后打开。</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">IKinectSensor   * mySensor = nullptr;</span><br><span class="line">GetDefaultKinectSensor(&amp;mySensor);</span><br><span class="line">mySensor-&gt;Open();</span><br></pre></td></tr></table></figure>

<p>2.准备读取ColorFrame</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">   IColorFrameSource   * myColorSource = nullptr;</span><br><span class="line">mySensor-&gt;get_ColorFrameSource(&amp;myColorSource);</span><br><span class="line">IColorFrameReader   * myColorReader = nullptr;</span><br><span class="line">myColorSource-&gt;OpenReader(&amp;myColorReader);</span><br><span class="line">int colorHeight = 0, colorWidth = 0;</span><br><span class="line">IFrameDescription   * myDescription = nullptr;</span><br><span class="line">myColorSource-&gt;get_FrameDescription(&amp;myDescription);</span><br><span class="line">myDescription-&gt;get_Height(&amp;colorHeight);</span><br><span class="line">myDescription-&gt;get_Width(&amp;colorWidth);</span><br><span class="line">IColorFrame * myColorFrame = nullptr;</span><br><span class="line">Mat original(colorHeight, colorWidth, CV_8UC4);</span><br></pre></td></tr></table></figure>

<p>3.准备读取BodyFrame</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">   IBodyFrameSource    * myBodySource = nullptr;</span><br><span class="line">mySensor-&gt;get_BodyFrameSource(&amp;myBodySource);</span><br><span class="line">IBodyFrameReader    * myBodyReader = nullptr;</span><br><span class="line">myBodySource-&gt;OpenReader(&amp;myBodyReader);</span><br><span class="line">int myBodyCount = 0;</span><br><span class="line">myBodySource-&gt;get_BodyCount(&amp;myBodyCount);</span><br><span class="line">IBodyFrame  * myBodyFrame = nullptr;</span><br><span class="line">ICoordinateMapper   * myMapper = nullptr;</span><br><span class="line">mySensor-&gt;get_CoordinateMapper(&amp;myMapper);</span><br></pre></td></tr></table></figure>

<p>4.每30帧获取一帧然后输出</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br></pre></td><td class="code"><pre><span class="line">   int fps = 0;</span><br><span class="line">while (1)</span><br><span class="line">&#123;</span><br><span class="line">	while (myColorReader-&gt;AcquireLatestFrame(&amp;myColorFrame) != S_OK);</span><br><span class="line">	myColorFrame-&gt;CopyConvertedFrameDataToArray(colorHeight * colorWidth * 4, original.data, ColorImageFormat_Bgra);</span><br><span class="line">	Mat copy = original.clone();        //读取彩色图像并输出到矩阵</span><br><span class="line">	while (myBodyReader-&gt;AcquireLatestFrame(&amp;myBodyFrame) != S_OK); //读取身体图像</span><br><span class="line">	IBody   **  myBodyArr = new IBody *[myBodyCount];       //为存身体数据的数组做准备</span><br><span class="line">	if (fps != 0) &#123;</span><br><span class="line">		fps++;</span><br><span class="line">		fps = fps % 30;</span><br><span class="line">		delete[]myBodyArr;</span><br><span class="line">		myBodyFrame-&gt;Release();</span><br><span class="line">		myColorFrame-&gt;Release();</span><br><span class="line">		continue;</span><br><span class="line">	&#125;</span><br><span class="line">	fps++;</span><br><span class="line">	for (int i = 0; i &lt; myBodyCount; i++)</span><br><span class="line">		myBodyArr[i] = nullptr;</span><br><span class="line">	if (myBodyFrame-&gt;GetAndRefreshBodyData(myBodyCount, myBodyArr) == S_OK)     //把身体数据输入数组</span><br><span class="line">		for (int i = 0; i &lt; myBodyCount; i++)</span><br><span class="line">		&#123;</span><br><span class="line">			BOOLEAN     result = false;</span><br><span class="line">			if (myBodyArr[i]-&gt;get_IsTracked(&amp;result) == S_OK &amp;&amp; result) //先判断是否侦测到</span><br><span class="line">			&#123;</span><br><span class="line">				Joint   myJointArr[JointType_Count];</span><br><span class="line">				if (myBodyArr[i]-&gt;GetJoints(JointType_Count, myJointArr) == S_OK)  </span><br><span class="line">				&#123;</span><br><span class="line">					draw(copy, myJointArr[JointType_Head], myJointArr[JointType_Neck], myMapper);</span><br><span class="line">				&#125;</span><br><span class="line">			&#125;</span><br><span class="line">		&#125;</span><br><span class="line">	delete[]myBodyArr;</span><br><span class="line">	myBodyFrame-&gt;Release();</span><br><span class="line">	myColorFrame-&gt;Release();</span><br><span class="line">	if (countFrame == 330) &#123;</span><br><span class="line">		break;</span><br><span class="line">	&#125;	</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>5.关闭Kinect并退出</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">myMapper-&gt;Release();</span><br><span class="line">myDescription-&gt;Release();</span><br><span class="line">myColorReader-&gt;Release();</span><br><span class="line">myColorSource-&gt;Release();</span><br><span class="line">myBodyReader-&gt;Release();</span><br><span class="line">myBodySource-&gt;Release();</span><br><span class="line">mySensor-&gt;Close();</span><br><span class="line">mySensor-&gt;Release();</span><br><span class="line">return  0;</span><br></pre></td></tr></table></figure>

<p>6.函数draw()</p>
<p> 获取时间然后直接输出坐标。</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line">void    draw(Mat &amp; img, Joint &amp; r_1, Joint &amp; r_2, ICoordinateMapper * myMapper)</span><br><span class="line">&#123;</span><br><span class="line">	countFrame++;</span><br><span class="line">	if (r_1.TrackingState == TrackingState_Tracked )</span><br><span class="line">	&#123;</span><br><span class="line">		now = clock();</span><br><span class="line">		ofstream fout(&quot;01.txt&quot;, ios::app);</span><br><span class="line">		cout &lt;&lt; now;	</span><br><span class="line">		cout &lt;&lt; r_1.Position.X &lt;&lt; r_1.Position.Y &lt;&lt; r_1.Position.Z &lt;&lt; &#x27;\t ,&#x27;&lt;&lt;countFrame&lt;&lt;endl;</span><br><span class="line">		fout &lt;&lt; r_1.Position.X&lt;&lt;&#x27;,&#x27; &lt;&lt; r_1.Position.Y &lt;&lt; &#x27;,&#x27; &lt;&lt; r_1.Position.Z &lt;&lt;&#x27;,&#x27;&lt;&lt;now&lt;&lt; endl;</span><br><span class="line">		fout.close();</span><br><span class="line">	&#125;</span><br><span class="line">	else &#123;</span><br><span class="line">		now = clock();</span><br><span class="line">		ofstream fout(&quot;01.txt&quot;, ios::app);</span><br><span class="line">		cout &lt;&lt; now;</span><br><span class="line">		cout &lt;&lt; 0 &lt;&lt; 0 &lt;&lt;0 &lt;&lt; endl;</span><br><span class="line">		fout &lt;&lt; 0 &lt;&lt; &#x27;,&#x27; &lt;&lt;0 &lt;&lt; &#x27;,&#x27; &lt;&lt; 0 &lt;&lt; &#x27;,&#x27; &lt;&lt; now&lt;&lt;endl;</span><br><span class="line">		fout.close();</span><br><span class="line">	&#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<h4 id="完整代码如下："><a href="#完整代码如下：" class="headerlink" title="完整代码如下："></a>完整代码如下：</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br></pre></td><td class="code"><pre><span class="line">//完整代码</span><br><span class="line">//其实本项目并没有用到opencv  我这是copy的别人的代码然后修改了一下。代码有很多和本项目无关的东西，等有时间删除精炼一下</span><br><span class="line">#include &lt;iostream&gt;</span><br><span class="line">#include &lt;opencv2\imgproc.hpp&gt;	//opencv头文件</span><br><span class="line">#include &lt;opencv2\calib3d.hpp&gt;</span><br><span class="line">#include &lt;opencv2\highgui.hpp&gt;</span><br><span class="line">#include &lt;Kinect.h&gt;	//Kinect头文件</span><br><span class="line">#include&lt;fstream&gt;</span><br><span class="line">#include&lt;ctime&gt;</span><br><span class="line">using   namespace   std;</span><br><span class="line">using   namespace   cv;</span><br><span class="line"></span><br><span class="line">int countFrame = 0;</span><br><span class="line">clock_t pre, now;</span><br><span class="line">clock_t begintime, endtime;</span><br><span class="line"></span><br><span class="line">void    draw(Mat &amp; img, Joint &amp; r_1, Joint &amp; r_2, ICoordinateMapper * myMapper);</span><br><span class="line">int main(void)</span><br><span class="line">&#123;</span><br><span class="line">	begintime = clock();</span><br><span class="line">	IKinectSensor   * mySensor = nullptr;</span><br><span class="line">	GetDefaultKinectSensor(&amp;mySensor);</span><br><span class="line">	mySensor-&gt;Open();</span><br><span class="line"></span><br><span class="line">	IColorFrameSource   * myColorSource = nullptr;</span><br><span class="line">	mySensor-&gt;get_ColorFrameSource(&amp;myColorSource);</span><br><span class="line"></span><br><span class="line">	IColorFrameReader   * myColorReader = nullptr;</span><br><span class="line">	myColorSource-&gt;OpenReader(&amp;myColorReader);</span><br><span class="line"></span><br><span class="line">	int colorHeight = 0, colorWidth = 0;</span><br><span class="line">	IFrameDescription   * myDescription = nullptr;</span><br><span class="line">	myColorSource-&gt;get_FrameDescription(&amp;myDescription);</span><br><span class="line">	myDescription-&gt;get_Height(&amp;colorHeight);</span><br><span class="line">	myDescription-&gt;get_Width(&amp;colorWidth);</span><br><span class="line"></span><br><span class="line">	IColorFrame * myColorFrame = nullptr;</span><br><span class="line">	Mat original(colorHeight, colorWidth, CV_8UC4);</span><br><span class="line"></span><br><span class="line">	//**********************以上为ColorFrame的读取前准备**************************</span><br><span class="line"></span><br><span class="line">	IBodyFrameSource    * myBodySource = nullptr;</span><br><span class="line">	mySensor-&gt;get_BodyFrameSource(&amp;myBodySource);</span><br><span class="line">	IBodyFrameReader    * myBodyReader = nullptr;</span><br><span class="line">	myBodySource-&gt;OpenReader(&amp;myBodyReader);</span><br><span class="line">	int myBodyCount = 0;</span><br><span class="line">	myBodySource-&gt;get_BodyCount(&amp;myBodyCount);</span><br><span class="line">	IBodyFrame  * myBodyFrame = nullptr;</span><br><span class="line">	ICoordinateMapper   * myMapper = nullptr;</span><br><span class="line">	mySensor-&gt;get_CoordinateMapper(&amp;myMapper);</span><br><span class="line">	int fps = 0;</span><br><span class="line">	//**********************以上为BodyFrame以及Mapper的准备***********************</span><br><span class="line">	while (1)</span><br><span class="line">	&#123;</span><br><span class="line">		while (myColorReader-&gt;AcquireLatestFrame(&amp;myColorFrame) != S_OK);</span><br><span class="line">		myColorFrame-&gt;CopyConvertedFrameDataToArray(colorHeight * colorWidth * 4, original.data, ColorImageFormat_Bgra);</span><br><span class="line">		Mat copy = original.clone();        //读取彩色图像并输出到矩阵</span><br><span class="line">		</span><br><span class="line">		while (myBodyReader-&gt;AcquireLatestFrame(&amp;myBodyFrame) != S_OK); //读取身体图像</span><br><span class="line">		IBody   **  myBodyArr = new IBody *[myBodyCount];       //为存身体数据的数组做准备</span><br><span class="line">		if (fps != 0) &#123;</span><br><span class="line">			//cout &lt;&lt; fps &lt;&lt; endl;</span><br><span class="line">			fps++;</span><br><span class="line">			fps = fps % 30;</span><br><span class="line">			delete[]myBodyArr;</span><br><span class="line">			myBodyFrame-&gt;Release();</span><br><span class="line">			myColorFrame-&gt;Release();</span><br><span class="line">			continue;</span><br><span class="line">		&#125;</span><br><span class="line">		fps++;</span><br><span class="line">		for (int i = 0; i &lt; myBodyCount; i++)</span><br><span class="line">			myBodyArr[i] = nullptr;</span><br><span class="line">		if (myBodyFrame-&gt;GetAndRefreshBodyData(myBodyCount, myBodyArr) == S_OK)     //把身体数据输入数组</span><br><span class="line">			for (int i = 0; i &lt; myBodyCount; i++)</span><br><span class="line">			&#123;</span><br><span class="line">				BOOLEAN     result = false;</span><br><span class="line">				if (myBodyArr[i]-&gt;get_IsTracked(&amp;result) == S_OK &amp;&amp; result) //先判断是否侦测到</span><br><span class="line">				&#123;</span><br><span class="line">					Joint   myJointArr[JointType_Count];</span><br><span class="line">					if (myBodyArr[i]-&gt;GetJoints(JointType_Count, myJointArr) == S_OK)   //如果侦测到就把关节数据输入到数组并画图</span><br><span class="line">					&#123;</span><br><span class="line">						draw(copy, myJointArr[JointType_Head], myJointArr[JointType_Neck], myMapper);</span><br><span class="line">					&#125;</span><br><span class="line">				&#125;</span><br><span class="line">			&#125;</span><br><span class="line">		delete[]myBodyArr;</span><br><span class="line">		myBodyFrame-&gt;Release();</span><br><span class="line">		myColorFrame-&gt;Release();</span><br><span class="line">		if (countFrame == 330) &#123;</span><br><span class="line">			break;</span><br><span class="line">		&#125;	</span><br><span class="line">	&#125;</span><br><span class="line">	myMapper-&gt;Release();</span><br><span class="line">	myDescription-&gt;Release();</span><br><span class="line">	myColorReader-&gt;Release();</span><br><span class="line">	myColorSource-&gt;Release();</span><br><span class="line">	myBodyReader-&gt;Release();</span><br><span class="line">	myBodySource-&gt;Release();</span><br><span class="line">	mySensor-&gt;Close();</span><br><span class="line">	mySensor-&gt;Release();</span><br><span class="line">	return  0;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line">void    draw(Mat &amp; img, Joint &amp; r_1, Joint &amp; r_2, ICoordinateMapper * myMapper)</span><br><span class="line">&#123;</span><br><span class="line">	countFrame++;</span><br><span class="line">	if (r_1.TrackingState == TrackingState_Tracked )</span><br><span class="line">	&#123;</span><br><span class="line">		now = clock();</span><br><span class="line">		ofstream fout(&quot;01.txt&quot;, ios::app);</span><br><span class="line">		cout &lt;&lt; now;	</span><br><span class="line">		cout &lt;&lt; r_1.Position.X &lt;&lt; r_1.Position.Y &lt;&lt; r_1.Position.Z &lt;&lt; &#x27;\t ,&#x27;&lt;&lt;countFrame&lt;&lt;endl;</span><br><span class="line">		fout &lt;&lt; r_1.Position.X&lt;&lt;&#x27;,&#x27; &lt;&lt; r_1.Position.Y &lt;&lt; &#x27;,&#x27; &lt;&lt; r_1.Position.Z &lt;&lt;&#x27;,&#x27;&lt;&lt;now&lt;&lt; endl;</span><br><span class="line">		fout.close();</span><br><span class="line">	&#125;</span><br><span class="line">	else &#123;</span><br><span class="line">		now = clock();</span><br><span class="line">		ofstream fout(&quot;01.txt&quot;, ios::app);</span><br><span class="line">		cout &lt;&lt; now;</span><br><span class="line">		cout &lt;&lt; 0 &lt;&lt; 0 &lt;&lt;0 &lt;&lt; endl;</span><br><span class="line">		fout &lt;&lt; 0 &lt;&lt; &#x27;,&#x27; &lt;&lt;0 &lt;&lt; &#x27;,&#x27; &lt;&lt; 0 &lt;&lt; &#x27;,&#x27; &lt;&lt; now&lt;&lt;endl;</span><br><span class="line">		fout.close();</span><br><span class="line">	&#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://huajiaohuixiang.gitee.io/2021/10/25/kinect%E8%8E%B7%E5%8F%96%E4%B8%89%E7%BB%B4%E5%9D%90%E6%A0%87/" data-id="ckvf4x3n10005okv1h8hh8dxb" data-title="kinect获取三维坐标" class="article-share-link">Share</a>
      
      
      
  <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Kinect/" rel="tag">Kinect</a></li></ul>

    </footer>
  </div>
  
</article>



  


  <nav id="page-nav">
    
    <span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><a class="extend next" rel="next" href="/page/2/">Next &raquo;</a>
  </nav>

</section>
        
          <aside id="sidebar">
  
    

  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Tags</h3>
    <div class="widget">
      <ul class="tag-list" itemprop="keywords"><li class="tag-list-item"><a class="tag-list-link" href="/tags/JetsonNano/" rel="tag">JetsonNano</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Kinect/" rel="tag">Kinect</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/frp/" rel="tag">frp</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/hexo/" rel="tag">hexo</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/linux/" rel="tag">linux</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/mysql/" rel="tag">mysql</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/redis/" rel="tag">redis</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/windows/" rel="tag">windows</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/" rel="tag">博客搭建</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/" rel="tag">服务器</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E7%BD%91%E7%BB%9C/" rel="tag">网络</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" rel="tag">读书笔记</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Tag Cloud</h3>
    <div class="widget tagcloud">
      <a href="/tags/JetsonNano/" style="font-size: 10px;">JetsonNano</a> <a href="/tags/Kinect/" style="font-size: 10px;">Kinect</a> <a href="/tags/frp/" style="font-size: 10px;">frp</a> <a href="/tags/hexo/" style="font-size: 10px;">hexo</a> <a href="/tags/linux/" style="font-size: 10px;">linux</a> <a href="/tags/mysql/" style="font-size: 10px;">mysql</a> <a href="/tags/redis/" style="font-size: 10px;">redis</a> <a href="/tags/windows/" style="font-size: 10px;">windows</a> <a href="/tags/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/" style="font-size: 10px;">博客搭建</a> <a href="/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/" style="font-size: 15px;">服务器</a> <a href="/tags/%E7%BD%91%E7%BB%9C/" style="font-size: 10px;">网络</a> <a href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" style="font-size: 20px;">读书笔记</a>
    </div>
  </div>

  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Archives</h3>
    <div class="widget">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/archives/2021/12/">December 2021</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2021/11/">November 2021</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2021/10/">October 2021</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Recent Posts</h3>
    <div class="widget">
      <ul>
        
          <li>
            <a href="/2021/12/08/%E5%BC%A0%E7%BE%8E%E4%B8%BD/">张美丽</a>
          </li>
        
          <li>
            <a href="/2021/12/08/%E9%9D%92%E9%9D%92/">青青</a>
          </li>
        
          <li>
            <a href="/2021/12/08/%E5%B0%8F%E5%BC%A0%E5%92%8C%E5%B0%8F%E4%B8%BD/">小张和小丽</a>
          </li>
        
          <li>
            <a href="/2021/11/24/%E5%91%90%E5%96%8A/">呐喊</a>
          </li>
        
          <li>
            <a href="/2021/11/24/%E9%87%8E%E8%8D%89/">野草</a>
          </li>
        
      </ul>
    </div>
  </div>

  
</aside>
        
      </div>
      <footer id="footer">
  
  <div class="outer">
    <div id="footer-info" class="inner">
      
      &copy; 2021 John Doe<br>
      Powered by <a href="https://hexo.io/" target="_blank">Hexo</a>
    </div>
  </div>
</footer>

    </div>
    <nav id="mobile-nav">
  
    <a href="/" class="mobile-nav-link">Home</a>
  
    <a href="/archives" class="mobile-nav-link">Archives</a>
  
</nav>
    


<script src="/js/jquery-3.4.1.min.js"></script>



  
<script src="/fancybox/jquery.fancybox.min.js"></script>




<script src="/js/script.js"></script>





  </div>
</body>
</html>